//如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后，短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。
//字母和数字都属于字母数字字符。
//给你一个字符串 s，如果它是回文串，返回true；否则，返回false
public class Test {
    private static boolean isValidChar(char ch){
        if (Character.isDigit(ch) || Character.isLetter(ch)){
            return true;
        }
        return false;
    }
    public static void main(String[] args) {
        String str = "A man, a plan, a canal: Panama";
        str = str.toLowerCase();
        int left = 0;
        int right = str.length()-1;
        while(left<right){
            while(left<right && !isValidChar(str.charAt(left))){
                left++;
            }
            while(left<right && !isValidChar(str.charAt(right))){
                right--;
            }
            if (str.charAt(left) != str.charAt(right)){
                System.out.println("false");
                return;
            }else{
                left++;
                right--;
            }
        }
        System.out.println("true");
        return;
    }

}
